package com.leyou.gateway.fallback;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author 虎哥
 */
@RestController
public class FallbackController {

    /**
     * Rest风格中，返回值的规定：
     *  - 响应体中只能保护数据，不能包含其它
     *  - 通过响应状态码来反映执行情况
     *     例如：200,201,204,302,304,400,401,403,404,405,406,415,429,500,502
     *  ResponseEntity代表的是整个Response，包含：响应状态码、响应头、响应体。泛型的类型就是响应体的类型
     * 默认的超时处理逻辑
     * @return 超时提醒
     */
    @RequestMapping(value = "/hystrix/fallback")
    public ResponseEntity<String> fallBackController() {
        // 返回504状态码，和超时信息
        return ResponseEntity.status(HttpStatus.GATEWAY_TIMEOUT).body("请求超时！");
    }
}